Static Analysis of Accessed Regions in Recursive Data Structures
نویسندگان
چکیده
This paper presents an inter-procedural heap analysis that computes information about how programs access regions within recursive data structures, such as sublists within lists or subtrees within trees. The analysis is able to accurately compute heap access information for statements and procedures in recursive programs with destructive updates. We formulate our algorithm as a dataflow analysis which computes shape information and heap access information at each program point. We use an abstraction of the heap based on shape graphs, whose nodes represent heap regions and whose edges encode the reachability between these regions. Our analysis is able to summarize the effects of procedures: it computes the heap regions being accessed by each procedure in terms of the heap abstraction at the entry of the procedure. We use node labels to express the regions at program points inside procedures in terms of the regions at procedure entry points. The inter-procedural analysis uses a fixpoint algorithm to compute the heap regions accessed by the whole execution of each procedure, including all of the procedures it invokes. We demonstrate how our analysis computes precise heap region access information for a recursive quicksort program that sorts a list in-place, using destructive updates.
منابع مشابه
Application of an Additive Self-tuning Controller for Static Synchronous Series Compensator for Damping of Sub-synchronous Resonance Oscillations
In this paper, an additive self-tuning (ST) control scheme is presented for a static synchronous series compensator (SSSC) to improve performance of conventional PI control system for damping sub-synchronous resonance (SSR) oscillations. The active and reactve series compensation are provided by a three-level 24-pulse SSSC and fixed capacitor. The proposed ST controller consists of a pole shift...
متن کاملRecognition of Logically Related Regions Based Heap Abstraction
This paper presents a novel set of algorithms for heap abstraction, identifying logically related regions of the heap. The targeted regions include objects that are part of the same component structure (recursive data structure). The result of the technique outlined in this paper has the form of a compact normal form (an abstract model) that boosts the efficiency of the static analysis via spee...
متن کاملDamage Detection in Beam-like Structures using Finite Volume Method
In this paper the damage location in beam like-structure is determined using static and dynamic data obtained using finite volume method. The change of static and dynamic displacement due to damage is used to establish an indicator for determining the damage location. In order to assess the robustness of the proposed method for structural damage detection, three test examples including a static...
متن کاملA Static Analysis for Program Understanding and Debugging
This paper presents a static pointer analysis technique for a subset of C. The tool supports user-defined assertions inserted in the body of the program. Assertions are of two kinds: static assertions automatically verified by the analyser, and hypothetical assertions treated as assumptions by the analyser. The technique deals with recursive data structures and it is accurate enough to handle c...
متن کاملStatic Analysis to Identify Vectorizable Numerical Domain in Logic Programs for Efficient Execution of Scientific Expert Systems
Interpretation is a global data flow analysis technique to derive the properties of logic programs. It is based upon mapping the logic program into an abstract domain and traversing an AND-OR tree in the abstract domain to derive the related properties. For the abstract domain of type expression, abstract interpretation derives the mode information in terms of type expressions [1, 2, 3]. In an ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003